package com.xuecheng.content.service;

import com.xuecheng.base.PageParams;
import com.xuecheng.base.PageResult;
import com.xuecheng.content.model.dto.AddCourseDto;
import com.xuecheng.content.model.dto.CourseBaseInfoDto;
import com.xuecheng.content.model.dto.EditCourseDto;
import com.xuecheng.content.model.dto.QueryCourseParamsDto;
import com.xuecheng.content.model.po.CourseBase;

/**
 * @author 杨振华
 * @since 2023/8/30
 */
public interface CourseBaseInfoService {
    // 课程分页查询
    PageResult<CourseBase> queryCourseBaseList(Long companyId, PageParams pageParams, QueryCourseParamsDto queryCourseParamsDto);

    /**
     * @param companyId    教学机构id
     * @param addCourseDto 课程基本信息
     * @description 添加课程基本信息
     */
    CourseBaseInfoDto createCourseBase(Long companyId, AddCourseDto addCourseDto);

    /**
     * 课程基本信息通过id
     *
     * @param courseId 进程id
     * @return {@link CourseBaseInfoDto}
     */
    CourseBaseInfoDto getCourseBaseInfoById(Long courseId);

    /**
     * 更新课程基础
     *
     * @param companyId 公司标识
     * @param dto       dto
     * @return {@link CourseBaseInfoDto}
     */
    CourseBaseInfoDto updateCourseBase(Long companyId, EditCourseDto dto);

    /**
     * 删除课程
     *
     * @param courseId
     */
    void deleteCourse(Long companyId, Long courseId);
}
